load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_test")

go_library(
    name = "go_default_library",
    srcs = [
        "addr_factory.go",
        "broadcaster.go",
        "config.go",
        "connection_gater.go",
        "dial_relay_node.go",
        "discovery.go",
        "doc.go",
        "fork.go",
        "gossip_scoring_params.go",
        "gossip_topic_mappings.go",
        "handshake.go",
        "info.go",
        "interfaces.go",
        "log.go",
        "monitoring.go",
        "options.go",
        "pubsub.go",
        "pubsub_filter.go",
        "rpc_topic_mappings.go",
        "sender.go",
        "service.go",
        "subnets.go",
        "topics.go",
        "utils.go",
        "watch_peers.go",
    ],
    importpath = "github.com/prysmaticlabs/prysm/beacon-chain/p2p",
    visibility = [
        "//beacon-chain:__subpackages__",
        "//endtoend/evaluators:__pkg__",
        "//fuzz:__pkg__",
        "//tools:__subpackages__",
    ],
    deps = [
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/core/feed:go_default_library",
        "//beacon-chain/core/feed/state:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/flags:go_default_library",
        "//beacon-chain/p2p/encoder:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/peers/peerdata:go_default_library",
        "//beacon-chain/p2p/peers/scorers:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//proto/beacon/p2p/v1:go_default_library",
        "//shared:go_default_library",
        "//shared/featureconfig:go_default_library",
        "//shared/fileutil:go_default_library",
        "//shared/hashutil:go_default_library",
        "//shared/iputils:go_default_library",
        "//shared/p2putils:go_default_library",
        "//shared/params:go_default_library",
        "//shared/runutil:go_default_library",
        "//shared/slotutil:go_default_library",
        "//shared/timeutils:go_default_library",
        "//shared/traceutil:go_default_library",
        "//shared/version:go_default_library",
        "@com_github_ethereum_go_ethereum//crypto:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/discover:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enode:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enr:go_default_library",
        "@com_github_gogo_protobuf//proto:go_default_library",
        "@com_github_golang_snappy//:go_default_library",
        "@com_github_ipfs_go_ipfs_addr//:go_default_library",
        "@com_github_kevinms_leakybucket_go//:go_default_library",
        "@com_github_libp2p_go_libp2p//:go_default_library",
        "@com_github_libp2p_go_libp2p//config:go_default_library",
        "@com_github_libp2p_go_libp2p_core//connmgr:go_default_library",
        "@com_github_libp2p_go_libp2p_core//control:go_default_library",
        "@com_github_libp2p_go_libp2p_core//crypto:go_default_library",
        "@com_github_libp2p_go_libp2p_core//host:go_default_library",
        "@com_github_libp2p_go_libp2p_core//network:go_default_library",
        "@com_github_libp2p_go_libp2p_core//peer:go_default_library",
        "@com_github_libp2p_go_libp2p_core//protocol:go_default_library",
        "@com_github_libp2p_go_libp2p_noise//:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//pb:go_default_library",
        "@com_github_multiformats_go_multiaddr//:go_default_library",
        "@com_github_multiformats_go_multiaddr//net:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prometheus_client_golang//prometheus:go_default_library",
        "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
        "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@io_opencensus_go//trace:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    srcs = [
        "addr_factory_test.go",
        "broadcaster_test.go",
        "connection_gater_test.go",
        "dial_relay_node_test.go",
        "discovery_test.go",
        "fork_test.go",
        "gossip_topic_mappings_test.go",
        "options_test.go",
        "parameter_test.go",
        "pubsub_filter_test.go",
        "pubsub_test.go",
        "rpc_topic_mappings_test.go",
        "sender_test.go",
        "service_test.go",
        "subnets_test.go",
        "utils_test.go",
    ],
    embed = [":go_default_library"],
    flaky = True,
    deps = [
        "//beacon-chain/blockchain/testing:go_default_library",
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/core/feed:go_default_library",
        "//beacon-chain/core/feed/state:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/p2p/encoder:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/peers/peerdata:go_default_library",
        "//beacon-chain/p2p/peers/scorers:go_default_library",
        "//beacon-chain/p2p/testing:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//proto/beacon/p2p/v1:go_default_library",
        "//proto/testing:go_default_library",
        "//shared/bytesutil:go_default_library",
        "//shared/event:go_default_library",
        "//shared/hashutil:go_default_library",
        "//shared/iputils:go_default_library",
        "//shared/p2putils:go_default_library",
        "//shared/params:go_default_library",
        "//shared/testutil:go_default_library",
        "//shared/testutil/assert:go_default_library",
        "//shared/testutil/require:go_default_library",
        "//shared/timeutils:go_default_library",
        "@com_github_ethereum_go_ethereum//crypto:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/discover:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enode:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enr:go_default_library",
        "@com_github_gogo_protobuf//proto:go_default_library",
        "@com_github_golang_snappy//:go_default_library",
        "@com_github_kevinms_leakybucket_go//:go_default_library",
        "@com_github_libp2p_go_libp2p//:go_default_library",
        "@com_github_libp2p_go_libp2p_blankhost//:go_default_library",
        "@com_github_libp2p_go_libp2p_core//crypto:go_default_library",
        "@com_github_libp2p_go_libp2p_core//host:go_default_library",
        "@com_github_libp2p_go_libp2p_core//network:go_default_library",
        "@com_github_libp2p_go_libp2p_core//peer:go_default_library",
        "@com_github_libp2p_go_libp2p_noise//:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//pb:go_default_library",
        "@com_github_libp2p_go_libp2p_swarm//testing:go_default_library",
        "@com_github_multiformats_go_multiaddr//:go_default_library",
        "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
        "@com_github_stretchr_testify//require:go_default_library",
    ],
)
